package com.aliyun.heiyu.powermaster.server.rbac.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.aliyun.heiyu.common.util.StringUtil;

/**
 * @Description 正则工具类
 * @Author shun.zhang
 * @Date 2020/9/24 21:38
 **/
public class PatternUtils {
    private static Pattern pattern = Pattern.compile("[0-9]*");
    private static String reg = "(([\u4E00-\u9FA5]{2,7})|([a-zA-Z]{3,10}))";
    private static String regEx = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~！@#￥%……&*（）——+|{}【】‘；：”“’。，、？]|\n|\r|\t";

    /**
     * 名字匹配
     *
     * @return
     */
    public static boolean namePattern(String name) {
        if(StringUtil.isEmpty(name)){
            return false;
        }
        if(name.equals("NULL") || name.equals("null")){
            return false;
        }
        return Pattern.matches(reg,name);
    }

    /**
     * 校验正整数
     * @param str
     * @return
     */
    public static boolean positiveInteger(String str){
        if(StringUtil.isEmpty(str) || str.length() != 4){
            return false;
        }
        String theOne=str.substring(0, 1);
        if("0".equals(theOne)||"-".equals(theOne)){
            return false;
        }
        return pattern.matcher(str).matches();
    }
    /**
     * 判断是否含有特殊字符
     *
     * @param str
     * @return true为包含，false为不包含
     */
    public static boolean isSpecialChar(String str) {
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(str);
        return m.find();
    }
}
